public class test06 {
    class Solution {
        public int findMinArrowShots(int[][] points) {
            //Arrays.sort(points,(a,b)->a[0]-b[0]);
            //当值非常大或非常小时，可能会溢出
            //而下面的方式会安全地处理所有可能的情况
            Arrays.sort(points,(a,b)->Integer.compare(a[0],b[0]));

            int res = 1;
            int rightRange = points[0][1];
            for(int i = 1;i<points.length;i++){
                if(rightRange>=points[i][0]){
                    rightRange = Math.min(rightRange,points[i][1]);
                }else{
                    res++;
                    rightRange = points[i][1];
                }

            }
            return res;
        }
    }
}
